﻿using System.Collections.Generic;
using Aop.Api.Domain;

namespace TY.UT.Pay.AliPay.lib
{
    /// <summary>
    /// add by 廖宇 2016.10.10
    /// 支付实体
    /// </summary>
    public class AlipayTradePayDto
    {
        public AlipayTradePayDto()
        {
            scene = "bar_code";//条码支付
            timeout_express = "2m";
        }
        /// <summary>
        /// 商家订单号（即我们自己的订单号）
        /// </summary>
        public string out_trade_no { get; set; }

        /// <summary>
        /// 收款账号（可选）
        /// </summary>
        public string seller_id { get; set; }

        /// <summary>
        /// 总金额=优惠金额+非优惠金额
        /// </summary>
        public string total_amount { get; set; }

        /// <summary>
        /// 优惠金额
        /// </summary>
        public string discountable_amount { get; set; }

        /// <summary>
        /// 非优惠金额
        /// </summary>
        public string undiscountable_amount { get; set; }

        /// <summary>
        /// 交易标题
        /// </summary>
        public string subject { get; set; }

        /// <summary>
        /// 交易描述（可选）
        /// </summary>
        public string body { get; set; }

        /// <summary>
        /// 交易商品列表（可选）
        /// </summary>
        public List<GoodsInfo> goods_detail { get; set; }

        /// <summary>
        /// 交易操作人ID
        /// </summary>
        public string operator_id { get; set; }

        /// <summary>
        /// 商户门店编号（可选）
        /// </summary>
        public string store_id { get; set; }

        /// <summary>
        /// 商户机具终端编号（可选）
        /// </summary>
        public string terminal_id { get; set; }

        /// <summary>
        /// 业务扩展参数（可选）
        /// </summary>
        public ExtendParams extend_params;

        /// <summary>
        /// 该笔订单允许的最晚付款时间，逾期将关闭交易。
        /// 取值范围：1m～15d。m-分钟，h-小时，d-天，1c-当天（1c-当天的情况下，无论交易何时创建，都在0点关闭）。 
        /// 该参数数值不接受小数点， 如 1.5h，可转换为 90m
        /// </summary>
        public string timeout_express { get; set; }

        /// <summary>
        /// 支付场景，条码支付取值：bar_code， 声波支付取值：wave_code，这里固定为bar_code
        /// </summary>
        public string scene { get; set; }

        /// <summary>
        /// 支付条码
        /// </summary>
        public string auth_code { get; set; }
    }

    /// <summary>
    /// add by 廖宇 2016.10.10
    /// 商品信息（可选）
    /// </summary>
    public class GoodsInfo
    {
        /// <summary>
        /// 商品ID
        /// </summary>
        public string goods_id { get; set; }

        /// <summary>
        /// 支付宝定义的统一商品编号（可选）
        /// </summary>
        public string alipay_goods_id { get; set; }

        /// <summary>
        /// 商品名称
        /// </summary>
        public string goods_name { get; set; }

        /// <summary>
        /// 商品数量
        /// </summary>
        public string quantity { get; set; }

        /// <summary>
        /// 商品单价，单位为元
        /// </summary>
        public string price { get; set; }

        /// <summary>
        /// 商品类目（可选）
        /// </summary>
        public string goods_category { get; set; }

        /// <summary>
        /// 商品描述信息（可选）
        /// </summary>
        public string body { get; set; }

        /// <summary>
        /// 商品的展示地址（可选）
        /// </summary>
        public string show_url { get; set; }
    }
}
